Skip to content

Allow booting in DSi direct mode without BIOS/firmware/NAND dumps.#2523

Merged
Arisotura merged 5 commits intomelonDS-emu:masterfrom
asiekierka:feature/freebios-dsi
Feb 11, 2026
Merged

Allow booting in DSi direct mode without BIOS/firmware/NAND dumps.#2523
Arisotura merged 5 commits intomelonDS-emu:masterfrom
asiekierka:feature/freebios-dsi

Conversation

@asiekierka
Copy link
Contributor

This is an initial patch which enables booting programs in DSi direct mode without requiring BIOS/firmware/NAND dumps from increasingly expensive consoles:

  • The open DSi BIOS is derived from a modified build of FreeBIOS; minor patches have been done (such as moving SWI 0x12 to 0x02), but no new SWI functions have been implemented.
  • The DSi firmware stub is generated in the same way as the NDS firmware stub; this appears to be good enough for BlocksDS's dswifi to pick up the new AP definitions.
  • The DSi NAND is currently not stubbed at all; rather, the code has been edited to allow bringup without a NAND image. This is sufficient for DSi mode homebrew; programs running from the cartridge slot are likewise not expected to require NAND access.

More work has to be done before it's useful for non-homebrew scenarios.

@asiekierka asiekierka force-pushed the feature/freebios-dsi branch 2 times, most recently from 4425cc3 to a40c9b8 Compare December 27, 2025 17:52
@KostaSaizo7
Copy link
Contributor

I have tested this pr and most DS games work in DSi mode without BIOS/firmware/NAND dumps.

Games that do not boot:

@asiekierka
Copy link
Contributor Author

Yeah, so there's no regression. Of course, the BIOS needs work before it can run non-homebrew DSi programs.

@Arisotura
Copy link
Member

looks good to me, just gotta fix that one conflict that popped up...

This is an initial patch which enables booting programs in DSi direct mode
without requiring BIOS/firmware/NAND dumps from increasingly expensive
consoles:

- The open DSi BIOS is derived from a modified build of FreeBIOS; minor patches
  have been done (such as moving SWI 0x12 to 0x02), but no new SWI functions
  have been implemented.
- The DSi firmware stub is generated in the same way as the NDS firmware stub;
  this appears to be good enough for BlocksDS's dswifi to pick up the new AP
  definitions.
- The DSi NAND is currently not stubbed at all; rather, the code has been
  edited to allow bringup without a NAND image. This is sufficient for DSi
  mode homebrew; programs running from the cartridge slot are likewise not
  expected to require NAND access.

More work has to be done before it's useful for non-homebrew scenarios.
@asiekierka
Copy link
Contributor Author

Done.

@Arisotura
Copy link
Member

okie dokie

@Arisotura Arisotura merged commit 87e1145 into melonDS-emu:master Feb 11, 2026
7 of 8 checks passed
maximxlss pushed a commit to maximxlss/melonDS-headless that referenced this pull request Feb 14, 2026
…elonDS-emu#2523)

* Allow booting in DSi direct mode without BIOS/firmware/NAND dumps.

This is an initial patch which enables booting programs in DSi direct mode
without requiring BIOS/firmware/NAND dumps from increasingly expensive
consoles:

- The open DSi BIOS is derived from a modified build of FreeBIOS; minor patches
  have been done (such as moving SWI 0x12 to 0x02), but no new SWI functions
  have been implemented.
- The DSi firmware stub is generated in the same way as the NDS firmware stub;
  this appears to be good enough for BlocksDS's dswifi to pick up the new AP
  definitions.
- The DSi NAND is currently not stubbed at all; rather, the code has been
  edited to allow bringup without a NAND image. This is sufficient for DSi
  mode homebrew; programs running from the cartridge slot are likewise not
  expected to require NAND access.

More work has to be done before it's useful for non-homebrew scenarios.

* Implement a less stub DSi::NeedsDirectBoot()

* Do not block direct boots if DSi NAND is missing but BIOS/firmware is present

* Correctly initialize extended header for DSi generated firmware

* Fix overriding firmware language in DSi mode, add experimental support for Chinese language option
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants